了解 OceanBase 数据库 您所在的位置:网站首页 oceanbase与mysql SQL语句不兼容 了解 OceanBase 数据库

了解 OceanBase 数据库

2024-07-13 13:21| 来源: 网络整理| 查看: 265

数据类型SQL 语法系统视图字符集和排序方式函数分区支持备份恢复存储引擎优化器暂不支持的功能

本节主要介绍 OceanBase 数据库的 MySQL 模式与原生 MySQL 数据库的兼容性对比信息。

OceanBase 数据库的 MySQL 模式兼容 MySQL 5.6 的绝大部分功能和语法。由于产品架构不同,或者客户需求不大,有些功能并没有被支持。本节主要从以下几方面介绍 OceanBase 数据库的 MySQL 模式与原生 MySQL 数据库的不同:

数据类型

SQL 语法

系统视图

字符集和排序方式

函数与表达式

分区支持

备份恢复

存储引擎

优化器

暂不支持的功能

数据类型

OceanBase 数据库支持的数据类型有:

数值类型

整数类型:BOOL/BOOLEAN、TINYINT、SMALLINT、MEDIUMINT、INT/INTEGER、BIGINT

定点类型:DECIMAL/NUMERIC

浮点类型:FLOAT、DOUBLE

Bit-Value 类型:BIT

日期时间类型

DATETIME、TIMESTAMP、DATE、TIME、YEAR

字符类型

VARCHAR、VARBINARY、CHAR、BINARY、enum、set

大对象类型

TINYTEXT、TINYBLOB、TEXT、BLOB、MEDIUMTEXT、MEDIUMBLOB、LONGTEXT、LONGBLOB

与 MySQL 数据库对比,OceanBase 数据库暂不支持空间数据类型和 JSON 数据类型,其他类别的数据类型支持情况是等于或大于 MySQL 数据库的。

SQL 语法

SELECT

支持大部分查询功能,包括支持单、多表查询;支持子查询;支持内连接、半连接以及外连接;支持分组、聚合;常见的概率、线性回归等数据挖掘函数等

支持如下集合操作:

union、union all、intersect、minus

支持通过如下方式查看执行计划:

EXPLAIN ;EXPLAIN extended

不支持SELECT … FOR SHARE …语法

INSERT

支持单行和多行插入,同时还支持指定分区插入

支持INSERT INTO … SELECT …语句

UPDATE

支持单列和多列更新

支持使用子查询

支持集合更新

DELETE

支持单表和多表删除

TRUNCATE

支持完全清空指定表 系统视图

OceanBase 数据库实现了 information_schema 和 mysql 这两个内部数据库中的大部分视图,但是由于架构不同,OceanBase 数据库并不保证所有视图均能实现以及视图中所有的列含义与 MySQL 相同。

更多系统视图的说明信息请参考《参考指南(MySQL 模式)》文档中 系统视图 章节。

字符集和排序方式

OceanBase 数据库兼容 MySQL 数据库的部分字符集和排序方式,具体支持情况如下:

OceanBase 数据库支持的字符集有 binary、utf8mb4、gbk、utf16、gb18030。

OceanBase 数据库支持的排序方式有 utf8mb4_general_ci、utf8mb4_bin、binary、gbk_chinese_ci、gbk_bin、utf16_general_ci、utf16_bin、utf8mb4_unicode_ci、utf16_unicode_ci、gb18030_chinese_ci、gb18030_bin。

函数

与 MySQL 数据库对比,OceanBase 数据库的 MySQL 模式不支持的函数如下:

数学函数:COT()、CRC32()、DEGREES()、LN()、LOG()、PI()、RADIANS()

日期时间函数:ADDDATE()、ADDTIME()、CONVERT_TZ()、DAY()、DAYNAME()、GET_FORMAT()、LOCALTIME()、MAKEDATE()、MAKETIME()、MONTHNAME()、PERIOD_ADD()、QUARTER()、SUBDATE()、TIME_FORMAT()、TIMESTAMP()、UTC_DATE()

字符串函数:BIT_LENGTH()、CHARACTER_LENGTH()、EXPORT_SET()、FROM_BASE64()、LCASE()、LOAD_FILE()、MATCH、OCTET_LENGTH()、RLIKE、SOUNDEX()、SOUNDS LIKE、TO_BASE64()、UCASE()、WEIGHT_STRING()

强制转换函数:BINARY

XML函数:ExtractValue()、UpdateXML()

加密和压缩函数:COMPRESS()、RANDOM_BYTES()、SHA1(), SHA()、SHA2()、STATEMENT_DIGEST()、STATEMENT_DIGEST_TEXT()、UNCOMPRESS()、UNCOMPRESSED_LENGTH()、VALIDATE_PASSWORD_STRENGTH()

锁定函数:GET_LOCK()、IS_FREE_LOCK()、IS_USED_LOCK()、RELEASE_ALL_LOCKS()、RELEASE_LOCK()

信息函数:BENCHMARK()、CURRENT_ROLE()、ICU_VERSION()、ROLES_GRAPHML()、SCHEMA()、SESSION_USER()、SYSTEM_USER()、

聚集函数:BIT_AND()、BIT_OR()、BIT_XOR()、JSON_ARRAYAGG()、JSON_OBJECTAGG()、STD()、VAR_POP()、VAR_SAMP()

窗口函数:OceanBase 数据库支持的是 MySQL 数据库的超集, MySQL 数据库的窗口函数都支持

其他函数:ANY_VALUE()、BIN_TO_UUID()、INET_ATON()、INET_NTOA()、INET6_ATON()、INET6_NTOA()、IS_IPV4()、IS_IPV4_COMPAT()、IS_IPV4_MAPPED()、IS_IPV6()、IS_UUID()、MASTER_POS_WAIT()、NAME_CONST()、UUID_SHORT()、UUID_TO_BIN()

另外,OceanBase 数据库的 MySQL 模式不支持空间分析函数、JSON 函数和性能模式函数。

分区支持

OceanBase 数据库与 MySQL 数据库对分区的支持差异如下:

OceanBase 数据库支持一级分区,模板化和非模板化二级分区;MySQL 数据库不支持非模板化二级分区

OceanBase 数据库的二级分区支持 HASH、KEY、RANGE、RANGE COLUMNS、LIST、LIST COLUMNS 分区;MySQL 数据库的二级分区仅支持 HASH分区和 KEY 分区

更多分区的说明及使用请参见《管理员指南》文档中 分区表和分区索引管理 章节。

备份恢复

OceanBase 数据库兼容了部分 MySQL 数据库的备份恢复特性,主要支持情况如下:

支持全量备份和增量备份

仅支持热备份,不支持冷备份

不支持数据库和表级的备份恢复

不支持备份数据的有效性验证

存储引擎

与 MySQL 数据库基于数据块的 InnoDB 和 Myisam 引擎不同,OceanBase 数据库使用的是基于 LSM-Tree 架构的存储引擎。

优化器

OceanBase 数据库在优化器方面与 MySQL 数据库的区别,主要表现在以下几个方面:

查看执行计划的命令

输出的列信息仅包含 ID、OPERATOR、NAME、EST. ROWS 和 COST 以及算子的详细信息

不支持使用SHOW WARNINGS显示额外的信息

查看统计信息

不支持执行ANALYZE TABLE语句查询数据字典表存储有关列值的直方图统计信息

支持通过内部表__all_meta_table查看表统计信息和列统计信息

查询改写优化

支持外联接优化

支持外联接简化

支持块嵌套循环和批量 Key 访问联接

支持条件过滤

支持常量叠算优化

支持 IS NULL 优化 (索引不存储 NULL 值)

支持 ORDER BY 优化

支持 GROUP BY 优化

支持 DISTINCT 消除

支持 LIMIT 下压

支持 Window 函数优化

支持避免全表扫描

支持谓词下压

Optimizer Hint 机制

支持联接顺序 Optimizer Hints

支持表级别的 Optimizer Hints

支持索引级别的 Optimizer Hints

语法支持INDEX HINT、FULL HINT、ORDERED HINT和LEADING HINT等,不支持USE INDEX和 FORCE INDEX

兼容 MySQL 数据库的并行执行能力包括并行查询、并行复制和并行写入等,且 OceanBase 数据库已经支持并行算子,包括并行聚集,并行联接,并行分组以及并行排序等。

OceanBase 数据库还支持计划缓存和预编译,MySQL 数据库并不支持。

更多优化器的详细信息请参见《SQL 调优指南》。

暂不支持的功能

暂不支持空间数据类型和 JSON 数据类型

不支持SELECT … FOR SHARE …语法

不支持空间分析函数、JSON 函数和性能模式函数

对于备份恢复功能,不支持数据库和表级的备份恢复;不支持备份数据的有效性验证

对于优化器,查看执行计划的命令不支持使用SHOW WARNINGS显示额外的信息;不支持执行ANALYZE TABLE查询数据字典中表存储有关列值的直方图统计信息。



【本文地址】

公司简介

联系我们

今日新闻

    推荐新闻

    专题文章
      CopyRight 2018-2019 实验室设备网 版权所有